

// 构造函数
function Test(name, age) {
    this.name = name
    this.age = age
    return this;
}

Test.prototype.sayName = function () {
        console.log("run:" + this.name)
}

function create(Con, ...args){
// 创建空对象
    let obj = {a :"a"};
// 设置空对象的原型
    obj.__proto__ = Con.prototype;
   //调用构造方法初始化
    var res = Con.apply(obj, args)
    return res instanceof Object ? res : obj;
}
    // 实现一个 new 操作符
const a = create(Test,'小鹿','23')
console.log(a.sayName())

